//
//  MainViewController.swift
//  Weibo
//
//  Created by 冯晓敏 on 15/12/15.
//  Copyright © 2015年 itcast. All rights reserved.
//

import UIKit

class MainViewController: UITabBarController {
    
    //必选的属性
    let mainTabbar = MainTabBar()

    
    // private func 是swift中函数的特殊的声明形式 希望swift方法选择+访问控制关键字 能够兼容 需要使用 @objc
    // @objc private要保证监听方法的安全性 并且可以响应点击事件的特殊写法
    @objc private func composeBtnDidClick(){
       print(__FUNCTION__)
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // tabbar 是只读属性,不能够直接进行设置,可以使用 KVC 在运行时 间接赋值(改变身份)
        print(tabBar.classForCoder)
        mainTabbar.composeBtn.addTarget(self, action: "composeBtnDidClick", forControlEvents: .TouchUpInside)
        setValue(mainTabbar, forKey: "tabBar")
        //classForCoder 对象的类的字符串形式
        print(tabBar.classForCoder)
        //添加子视图控制器
        addChildViewControllers()
        
        
    }
    //private 表示只能在本类中进行访问
    private func addChildViewControllers(){
        //HomeTableViewController() 需要修改
        addChildViewController(HomeTableViewController(),title: "首页",imageName: "tabbar_home")
        addChildViewController(MessageTableViewController(),title: "消息",imageName: "tabbar_message_center")
        addChildViewController(DiscoverTableViewController(),title: "发现",imageName: "tabbar_discover")
        addChildViewController(ProfileTableViewController(),title: "我",imageName: "tabbar_profile")

        
    }
    private func addChildViewController(vc:UIViewController,title:String,imageName:String){
        //设置颜色
        self.tabBar.tintColor = UIColor.orangeColor()
        //添加导航视图控制器
        let nav = UINavigationController(rootViewController: vc)
        /*
        title = "首页"
        nav.title = "首页"
        homeVC.tabBarItem = "首页"
        */
        //从内到外进行设置
        vc.title = title
        //设置图片
        vc.tabBarItem.image = UIImage(named:imageName)
//        vc.tabBarItem.selectedImage = UIImage(named:imageName + "_highlighted")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
//        vc.tabBarItem.setTitleTextAttributes([NSForegroundColorAttributeName:UIColor.orangeColor()], forState: .Selected)
        //在 swift中 self 可以省略
        addChildViewController(nav)
        
        
    }
}